package File.FileExercise;

import java.io.File;

/**
 * ClassName:File003
 * Package:File.FileExercise
 * Description:
 *
 * @Author:ZhangXin
 * @Create2023/2/27-21:29
 * @Version:v1.0
 */
public class File003 {
    /*需求：找到电脑中所有以avi结尾的电影(需要考虑子文件夹)*/
    //思想:把大问题拆分,拆到某一个文件夹中不包含其他文件夹为止----递归
    /*
     * 套路:
     * 1.进入文件夹
     * 2.遍历数组
     * 3.判断
     * 4.判断*/
    public static void main(String[] args) {
//        File src = new File("C:\\");
//        findAVI(src);
        findAVI();

    }
    public static void findAVI(){
        //获取本地所有盘符
        File[] arr = File.listRoots();
        for (File f : arr) {
            findAVI(f);
        }
    }

    public static void findAVI(File src) {
        //进入文件夹src
        File[] files = src.listFiles();
        //当调用者File表示的路径是需要权限才能访问的文件夹时,返回null
        if (files != null) {
            System.out.println(src);

            //遍历数组,依次得到src里面的每一个文件或文件夹
            for (File file : files) {
                //判断：如果是文件,就可以执行题目的业务逻辑
                if (file.isFile()) {
                    String name = file.getName();
                    if (name.endsWith(".avi")) {
                        System.out.println(file);
                    }
                } else {
                    //判断：如果是文件夹,就可以递归
                    //细节：再次调用本方法的时候,参数一定要是src的次一级路径
                    findAVI(file);
                }
            }

        }
    }
}
